home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Megahits 7
/
Megahits 7 (1995)(GTI - Rhein-Main-Soft)(DE)[!].iso
/
franz
/
franz_301_350
/
franz_302.dms
/
franz_302.adf
/
Planspiel_Börse
/
Planspiel_Börse.p.pp
/
Planspiel_Börse.p
Wrap
Text File
|
1978-01-29
|
37KB
|
914 lines
PROGRAM PlanspielBoerse;
CONST Lenght = 80;
TYPE String80 = STRING[80];
Aktien = ARRAY[1..3] OF 0..37000; {* 1 = Kurs / 2 = im Besitz / 3 = auf dem Markt *}
VAR F : TEXT;
Tag,Wahl,Guthaben : INTEGER;
SpielerName : STRING;
AEG,BASF,Bertelsmann,BMW,BP,Continental,DresdnerBank,Hoechst,IBM,Karstadt,KruppAG,Mercedes,Phoenix,Porsche,Siemens,Sony,Springer,Thyssen,Varta,VEW : Aktien;
AltAEG,AltBASF,AltBertelsmann,AltBMW,AltBP,AltContinental,AltDresdnerBank,AltHoechst,AltIBM,AltKarstadt,AltKruppAG,AltMercedes,AltPhoenix,AltPorsche,AltSiemens,AltSony,AltSpringer,AltThyssen,AltVarta,AltVEW : INTEGER;
PROCEDURE Nothing;
BEGIN
END;
PROCEDURE Coord(x,y:INTEGER);
BEGIN
WRITE(F,chr($9b),y,';',x,'H');
END;
PROCEDURE Voreinstellungen;
BEGIN
{* Börsenkurs vom 22.11.1993 *}
AEG[1] := 163; AEG[2] := 0; AEG[3] := 10;
BASF[1] := 272; BASF[2] := 0; BASF[3] := 10;
Bertelsmann[1] := 218; Bertelsmann[2] := 0; Bertelsmann[3] := 10;
BMW[1] := 636; BMW[2] := 0; BMW[3] := 10;
BP[1] := 118; BP[2] := 0; BP[3] := 10;
Continental[1] := 253; Continental[2] := 0; Continental[3] := 10;
DresdnerBank[1] := 439; DresdnerBank[2] := 0; DresdnerBank[3] := 10;
Hoechst[1] := 278; Hoechst[2] := 0; Hoechst[3] := 10;
IBM[1] := 189; IBM[2] := 0; IBM[3] := 10;
Karstadt[1] := 613; Karstadt[2] := 0; Karstadt[3] := 10;
KruppAG[1] := 146; KruppAG[2] := 0; KruppAG[3] := 10;
Mercedes[1] := 725; Mercedes[2] := 0; Mercedes[3] := 10;
Phoenix[1] := 243; Phoenix[2] := 0; Phoenix[3] := 10;
Porsche[1] := 760; Porsche[2] := 0; Porsche[3] := 10;
Siemens[1] := 730; Siemens[2] := 0; Siemens[3] := 10;
Sony[1] := 176; Sony[2] := 0; Sony[3] := 10;
Springer[1] := 670; Springer[2] := 0; Springer[3] := 10;
Thyssen[1] := 237; Thyssen[2] := 0; Thyssen[3] := 10;
Varta[1] := 331; Varta[2] := 0; Varta[3] := 10;
VEW[1] := 315; VEW[2] := 0; VEW[3] := 10;
AltAEG := 0;
AltBASF := 0;
AltBertelsmann := 0;
AltBMW := 0;
AltBP := 0;
AltContinental := 0;
AltDresdnerBank := 0;
AltHoechst := 0;
AltIBM := 0;
AltKarstadt := 0;
AltKruppAG := 0;
AltMercedes := 0;
AltPhoenix := 0;
AltPorsche := 0;
AltSiemens := 0;
AltSony := 0;
AltSpringer := 0;
AltThyssen := 0;
AltVarta := 0;
AltVEW := 0;
END;
PROCEDURE AEGKaufen;
BEGIN
Guthaben := Guthaben - AEG[1];
AEG[2] := AEG[2] + 1;
AEG[3] := AEG[3] - 1;
END;
PROCEDURE BASFKaufen;
BEGIN
Guthaben := Guthaben - BASF[1];
BASF[2] := BASF[2] + 1;
BASF[3] := BASF[3] - 1;
END;
PROCEDURE BertelsmannKaufen;
BEGIN
Guthaben := Guthaben - Bertelsmann[1];
Bertelsmann[2] := Bertelsmann[2] + 1;
Bertelsmann[3] := Bertelsmann[3] - 1;
END;
PROCEDURE BMWKaufen;
BEGIN
Guthaben := Guthaben - BMW[1];
BMW[2] := BMW[2] + 1;
BMW[3] := BMW[3] - 1;
END;
PROCEDURE BPKaufen;
BEGIN
Guthaben := Guthaben - BP[1];
BP[2] := BP[2] + 1;
BP[3] := BP[3] - 1;
END;
PROCEDURE ContinentalKaufen;
BEGIN
Guthaben := Guthaben - Continental[1];
Continental[2] := Continental[2] + 1;
Continental[3] := Continental[3] - 1;
END;
PROCEDURE DresdnerBankKaufen;
BEGIN
Guthaben := Guthaben - DresdnerBank[1];
DresdnerBank[2] := DresdnerBank[2] + 1;
DresdnerBank[3] := DresdnerBank[3] - 1;
END;
PROCEDURE HoechstKaufen;
BEGIN
Guthaben := Guthaben - Hoechst[1];
Hoechst[2] := Hoechst[2] + 1;
Hoechst[3] := Hoechst[3] - 1;
END;
PROCEDURE IBMKaufen;
BEGIN
Guthaben := Guthaben - IBM[1];
IBM[2] := IBM[2] + 1;
IBM[3] := IBM[3] - 1;
END;
PROCEDURE KarstadtKaufen;
BEGIN
Guthaben := Guthaben - Karstadt[1];
Karstadt[2] := Karstadt[2] + 1;
Karstadt[3] := Karstadt[3] - 1;
END;
PROCEDURE KruppAGKaufen;
BEGIN
Guthaben := Guthaben - KruppAG[1];
KruppAG[2] := KruppAG[2] + 1;
KruppAG[3] := KruppAG[3] - 1;
END;
PROCEDURE MercedesKaufen;
BEGIN
Guthaben := Guthaben - Mercedes[1];
Mercedes[2] := Mercedes[2] + 1;
Mercedes[3] := Mercedes[3] - 1;
END;
PROCEDURE PhoenixKaufen;
BEGIN
Guthaben := Guthaben - Phoenix[1];
Phoenix[2] := Phoenix[2] + 1;
Phoenix[3] := Phoenix[3] - 1;
END;
PROCEDURE PorscheKaufen;
BEGIN
Guthaben := Guthaben - Porsche[1];
Porsche[2] := Porsche[2] + 1;
Porsche[3] := Porsche[3] - 1;
END;
PROCEDURE SiemensKaufen;
BEGIN
Guthaben := Guthaben - Siemens[1];
Siemens[2] := Siemens[2] + 1;
Siemens[3] := Siemens[3] - 1;
END;
PROCEDURE SonyKaufen;
BEGIN
Guthaben := Guthaben - Sony[1];
Sony[2] := Sony[2] + 1;
Sony[3] := Sony[3] - 1;
END;
PROCEDURE SpringerKaufen;
BEGIN
Guthaben := Guthaben - Springer[1];
Springer[2] := Springer[2] + 1;
Springer[3] := Springer[3] - 1;
END;
PROCEDURE ThyssenKaufen;
BEGIN
Guthaben := Guthaben - Thyssen[1];
Thyssen[2] := Thyssen[2] + 1;
Thyssen[3] := Thyssen[3] - 1;
END;
PROCEDURE VartaKaufen;
BEGIN
Guthaben := Guthaben - Varta[1];
Varta[2] := Varta[2] + 1;
Varta[3] := Varta[3] - 1;
END;
PROCEDURE VEWKaufen;
BEGIN
Guthaben := Guthaben - VEW[1];
VEW[2] := VEW[2] + 1;
VEW[3] := VEW[3] - 1;
END;
PROCEDURE VEWVerkaufen;
BEGIN
Guthaben := Guthaben + VEW[1];
VEW[2] := VEW[2] - 1;
VEW[3] := VEW[3] + 1;
END;
PROCEDURE AEGVerkaufen;
BEGIN
Guthaben := Guthaben + AEG[1];
AEG[2] := AEG[2] - 1;
AEG[3] := AEG[3] + 1;
END;
PROCEDURE BASFVerkaufen;
BEGIN
Guthaben := Guthaben + BASF[1];
BASF[2] := BASF[2] - 1;
BASF[3] := BASF[3] + 1;
END;
PROCEDURE BertelsmannVerkaufen;
BEGIN
Guthaben := Guthaben + Bertelsmann[1];
Bertelsmann[2] := Bertelsmann[2] - 1;
Bertelsmann[3] := Bertelsmann[3] + 1;
END;
PROCEDURE BMWVerkaufen;
BEGIN
Guthaben := Guthaben + BMW[1];
BMW[2] := BMW[2] - 1;
BMW[3] := BMW[3] + 1;
END;
PROCEDURE BPVerkaufen;
BEGIN
Guthaben := Guthaben + BP[1];
BP[2] := BP[2] - 1;
BP[3] := BP[3] + 1;
END;
PROCEDURE ContinentalVerkaufen;
BEGIN
Guthaben := Guthaben + Continental[1];
Continental[2] := Continental[2] - 1;
Continental[3] := Continental[3] + 1;
END;
PROCEDURE DresdnerBankVerkaufen;
BEGIN
Guthaben := Guthaben + DresdnerBank[1];
DresdnerBank[2] := DresdnerBank[2] - 1;
DresdnerBank[3] := DresdnerBank[3] + 1;
END;
PROCEDURE HoechstVerkaufen;
BEGIN
Guthaben := Guthaben + Hoechst[1];
Hoechst[2] := Hoechst[2] - 1;
Hoechst[3] := Hoechst[3] + 1;
END;
PROCEDURE IBMVerkaufen;
BEGIN
Guthaben := Guthaben + IBM[1];
IBM[2] := IBM[2] - 1;
IBM[3] := IBM[3] + 1;
END;
PROCEDURE KarstadtVerkaufen;
BEGIN
Guthaben := Guthaben + Karstadt[1];
Karstadt[2] := Karstadt[2] - 1;
Karstadt[3] := Karstadt[3] + 1;
END;
PROCEDURE KruppAGVerkaufen;
BEGIN
Guthaben := Guthaben + KruppAG[1];
KruppAG[2] := KruppAG[2] - 1;
KruppAG[3] := KruppAG[3] + 1;
END;
PROCEDURE MercedesVerkaufen;
BEGIN
Guthaben := Guthaben + Mercedes[1];
Mercedes[2] := Mercedes[2] - 1;
Mercedes[3] := Mercedes[3] + 1;
END;
PROCEDURE PhoenixVerkaufen;
BEGIN
Guthaben := Guthaben + Phoenix[1];
Phoenix[2] := Phoenix[2] - 1;
Phoenix[3] := Phoenix[3] + 1;
END;
PROCEDURE PorscheVerkaufen;
BEGIN
Guthaben := Guthaben + Porsche[1];
Porsche[2] := Porsche[2] - 1;
Porsche[3] := Porsche[3] + 1;
END;
PROCEDURE SiemensVerkaufen;
BEGIN
Guthaben := Guthaben + Siemens[1];
Siemens[2] := Siemens[2] - 1;
Siemens[3] := Siemens[3] + 1;
END;
PROCEDURE SonyVerkaufen;
BEGIN
Guthaben := Guthaben + Sony[1];
Sony[2] := Sony[2] - 1;
Sony[3] := Sony[3] + 1;
END;
PROCEDURE SpringerVerkaufen;
BEGIN
Guthaben := Guthaben + Springer[1];
Springer[2] := Springer[2] - 1;
Springer[3] := Springer[3] + 1;
END;
PROCEDURE ThyssenVerkaufen;
BEGIN
Guthaben := Guthaben + Thyssen[1];
Thyssen[2] := Thyssen[2] - 1;
Thyssen[3] := Thyssen[3] + 1;
END;
PROCEDURE VartaVerkaufen;
BEGIN
Guthaben := Guthaben + Varta[1];
Varta[2] := Varta[2] - 1;
Varta[3] := Varta[3] + 1;
END;
PROCEDURE Kaufen;
BEGIN
REPEAT;
REPEAT;
CLRSCR(f);
COORD(1,1); WRITELN(f,Spielername,' --- Guthaben: ',Guthaben,' --- Tag: ',Tag);
COORD(1,3); WRITELN(f,'Nr. |Firma | Kurs | im Besitz | auf dem Markt ');
COORD(1,4); WRITELN(f,'----+----------------+--------+-----------+---------------');
COORD(1,5); WRITELN(f,' 1 | AEG | ',AEG[1]:5,' | ',AEG[2]:9,' | ',AEG[3]);
COORD(1,6); WRITELN(f,' 2 | BASF | ',BASF[1]:5,' | ',BASF[2]:9,' | ',BASF[3]);
COORD(1,7); WRITELN(f,' 3 | Bertelsmann | ',Bertelsmann[1]:5,' | ',Bertelsmann[2]:9,' | ',Bertelsmann[3]);
COORD(1,8); WRITELN(f,' 4 | BMW | ',BMW[1]:5,' | ',BMW[2]:9,' | ',BMW[3]);
COORD(1,9); WRITELN(f,' 5 | BP | ',BP[1]:5,' | ',BP[2]:9,' | ',BP[3]);
COORD(1,10);WRITELN(f,' 6 | Continental | ',Continental[1]:5,' | ',Continental[2]:9,' | ',Continental[3]);
COORD(1,11);WRITELN(f,' 7 | Dresdner Bank | ',DresdnerBank[1]:5,' | ',DresdnerBank[2]:9,' | ',DresdnerBank[3]);
COORD(1,12);WRITELN(f,' 8 | Hoechst | ',Hoechst[1]:5,' | ',Hoechst[2]:9,' | ',Hoechst[3]);
COORD(1,13);WRITELN(f,' 9 | IBM | ',IBM[1]:5,' | ',IBM[2]:9,' | ',IBM[3]);
COORD(1,14);WRITELN(f,' 10 | Karstadt | ',Karstadt[1]:5,' | ',Karstadt[2]:9,' | ',Karstadt[3]);
COORD(1,15);WRITELN(f,' 11 | Krupp AG | ',KruppAG[1]:5,' | ',KruppAG[2]:9,' | ',KruppAG[3]);
COORD(1,16);WRITELN(f,' 12 | Mercedes | ',Mercedes[1]:5,' | ',Mercedes[2]:9,' | ',Mercedes[3]);
COORD(1,17);WRITELN(f,' 13 | Phoenix | ',Phoenix[1]:5,' | ',Phoenix[2]:9,' | ',Phoenix[3]);
COORD(1,18);WRITELN(f,' 14 | Porsche | ',Porsche[1]:5,' | ',Porsche[2]:9,' | ',Porsche[3]);
COORD(1,19);WRITELN(f,' 15 | Siemens | ',Siemens[1]:5,' | ',Siemens[2]:9,' | ',Siemens[3]);
COORD(1,20);WRITELN(f,' 16 | Sony | ',Sony[1]:5,' | ',Sony[2]:9,' | ',Sony[3]);
COORD(1,21);WRITELN(f,' 17 | Springer | ',Springer[1]:5,' | ',Springer[2]:9,' | ',Springer[3]);
COORD(1,22);WRITELN(f,' 18 | Thyssen | ',Thyssen[1]:5,' | ',Thyssen[2]:9,' | ',Thyssen[3]);
COORD(1,23);WRITELN(f,' 19 | Varta | ',Varta[1]:5,' | ',Varta[2]:9,' | ',Varta[3]);
COORD(1,24);WRITELN(f,' 20 | VEW | ',VEW[1]:5,' | ',VEW[2]:9,' | ',VEW[3]);
COORD(1,26);WRITE(f,' Welche Aktie wollen Sie kaufen (0 = Exit)? Nr.: '); READLN(f,Wahl);
UNTIL (Wahl > -1) AND (Wahl < 21);
CASE Wahl OF
0 : Nothing
1 : IF AEG[3] = 0 THEN Nothing
ELSE AEGKaufen;
2 : IF BASF[3] = 0 THEN Nothing
ELSE BASFKaufen;
3 : IF Bertelsmann[3] = 0 THEN Nothing
ELSE Bertelsmannkaufen
4 : IF BMW[3] = 0 THEN Nothing
ELSE BMWKaufen;
5 : IF BP[3] = 0 THEN Nothing
ELSE BPKaufen;
6 : IF Continental[3] = 0 THEN Nothing
ELSE ContinentalKaufen;
7 : IF DresdnerBank[3] = 0 THEN Nothing
ELSE DresdnerBankKaufen;
8 : IF Hoechst[3] = 0 THEN Nothing
ELSE HoechstKaufen;
9 : IF IBM[3] = 0 THEN Nothing
ELSE IBMKaufen;
10: IF Karstadt[3] = 0 THEN Nothing
ELSE KarstadtKaufen;
11: IF KruppAG[3] = 0 THEN Nothing
ELSE KruppAGKaufen;
12: IF Mercedes[3] = 0 THEN Nothing
ELSE MercedesKaufen;
13: IF Phoenix[3] = 0 THEN Nothing
ELSE PhoenixKaufen;
14: IF Porsche[3] = 0 THEN Nothing
ELSE PorscheKaufen;
15: IF Siemens[3] = 0 THEN Nothing
ELSE Siemenskaufen;
16: IF Sony[3] = 0 THEN Nothing
ELSE Sonykaufen;
17: IF Springer[3] = 0 THEN Nothing
ELSE Springerkaufen;
18: IF Thyssen[3] = 0 THEN Nothing
ELSE Thyssenkaufen;
19: IF Varta[3] = 0 THEN Nothing
ELSE Vartakaufen;
20: IF VEW[3] = 0 THEN Nothing
ELSE VEWKaufen;
END;
UNTIL Wahl = 0;
END;
PROCEDURE Verkaufen;
BEGIN
REPEAT;
REPEAT;
CLRSCR(f);
COORD(1,1); WRITELN(f,Spielername,' --- Guthaben: ',Guthaben:8,' --- Tag: ',Tag);
COORD(1,3); WRITELN(f,'Nr. |Firma | Kurs | im Besitz | auf dem Markt ');
COORD(1,4); WRITELN(f,'----+----------------+--------+-----------+---------------');
IF AEG[2] = 0 THEN Nothing
ELSE WRITELN(f,' 1 | AEG | ',AEG[1]:5,' | ',AEG[2]:9,' | ',AEG[3]);
IF BASF[2] = 0 THEN Nothing
ELSE WRITELN(f,' 2 | BASF | ',BASF[1]:5,' | ',BASF[2]:9,' | ',BASF[3]);
IF Bertelsmann[2] = 0 THEN Nothing
ELSE WRITELN(f,' 3 | Bertelsmann | ',Bertelsmann[1]:5,' | ',Bertelsmann[2]:9,' | ',Bertelsmann[3]);
IF BMW[2] = 0 THEN Nothing
ELSE WRITELN(f,' 4 | BMW | ',BMW[1]:5,' | ',BMW[2]:9,' | ',BMW[3]);
IF BP[2] = 0 THEN Nothing
ELSE WRITELN(f,' 5 | BP | ',BP[1]:5,' | ',BP[2]:9,' | ',BP[3]);
IF Continental[2] = 0 THEN Nothing
ELSE WRITELN(f,' 6 | Continental | ',Continental[1]:5,' | ',Continental[2]:9,' | ',Continental[3]);
IF DresdnerBank[2] = 0 THEN Nothing
ELSE WRITELN(f,' 7 | Dresdner Bank | ',DresdnerBank[1]:5,' | ',DresdnerBank[2]:9,' | ',DresdnerBank[3]);
IF Hoechst[2] = 0 THEN Nothing
ELSE WRITELN(f,' 8 | Hoechst | ',Hoechst[1]:5,' | ',Hoechst[2]:9,' | ',Hoechst[3]);
IF IBM[2] = 0 THEN Nothing
ELSE WRITELN(f,' 9 | IBM | ',IBM[1]:5,' | ',IBM[2]:9,' | ',IBM[3]);
IF Karstadt[2] = 0 THEN Nothing
ELSE WRITELN(f,' 10 | Karstadt | ',Karstadt[1]:5,' | ',Karstadt[2]:9,' | ',Karstadt[3]);
IF KruppAG[2] = 0 THEN Nothing
ELSE WRITELN(f,' 11 | Krupp AG | ',KruppAG[1]:5,' | ',KruppAG[2]:9,' | ',KruppAG[3]);
IF Mercedes[2] = 0 THEN Nothing
ELSE WRITELN(f,' 12 | Mercedes | ',Mercedes[1]:5,' | ',Mercedes[2]:9,' | ',Mercedes[3]);
IF Phoenix[2] = 0 THEN Nothing
ELSE WRITELN(f,' 13 | Phoenix | ',Phoenix[1]:5,' | ',Phoenix[2]:9,' | ',Phoenix[3]);
IF Porsche[2] = 0 THEN Nothing
ELSE WRITELN(f,' 14 | Porsche | ',Porsche[1]:5,' | ',Porsche[2]:9,' | ',Porsche[3]);
IF Siemens[2] = 0 THEN Nothing
ELSE WRITELN(f,' 15 | Siemens | ',Siemens[1]:5,' | ',Siemens[2]:9,' | ',Siemens[3]);
IF Sony[2] = 0 THEN Nothing
ELSE WRITELN(f,' 16 | Sony | ',Sony[1]:5,' | ',Sony[2]:9,' | ',Sony[3]);
IF Springer[2] = 0 THEN Nothing
ELSE WRITELN(f,' 17 | Springer | ',Springer[1]:5,' | ',Springer[2]:9,' | ',Springer[3]);
IF Thyssen[2] = 0 THEN Nothing
ELSE WRITELN(f,' 18 | Thyssen | ',Thyssen[1]:5,' | ',Thyssen[2]:9,' | ',Thyssen[3]);
IF Varta[2] = 0 THEN Nothing
ELSE WRITELN(f,' 19 | Varta | ',Varta[1]:5,' | ',Varta[2]:9,' | ',Varta[3]);
IF VEW[2] = 0 THEN Nothing
ELSE WRITELN(f,' 20 | VEW | ',VEW[1]:5,' | ',VEW[2]:9,' | ',VEW[3]);
COORD(1,26); WRITE(f,'Welche Aktie wollen Sie verkaufen (0 = Exit)? Nr.: '); READLN(f,Wahl);
UNTIL (Wahl > -1) AND (Wahl < 21);
CASE Wahl OF
0 : Nothing;
1 : IF AEG[2] = 0 THEN Nothing
ELSE AEGVerkaufen;
2 : IF BASF[2] = 0 THEN Nothing
ELSE BASFVerkaufen;
3 : IF Bertelsmann[2] = 0 THEN Nothing
ELSE BertelsmannVerkaufen;
4 : IF BMW[2] = 0 THEN Nothing
ELSE BMWVerkaufen;
5 : IF BP[2] = 0 THEN Nothing
ELSE BPVerkaufen;
6 : IF Continental[2] = 0 THEN Nothing
ELSE ContinentalVerkaufen;
7 : IF DresdnerBank[2] = 0 THEN Nothing
ELSE DresdnerBankVerkaufen;
8 : IF Hoechst[2] = 0 THEN Nothing
ELSE HoechstVerkaufen;
9 : IF IBM[2] = 0 THEN Nothing
ELSE IBMVerkaufen;
10: IF Karstadt[2] = 0 THEN Nothing
ELSE KarstadtVerkaufen;
11: IF KruppAG[2] = 0 THEN Nothing
ELSE KruppAGVerkaufen;
12: IF Mercedes[2] = 0 THEN Nothing
ELSE MercedesVerkaufen;
13: IF Phoenix[2] = 0 THEN Nothing
ELSE PhoenixVerkaufen;
14: IF Porsche[2] = 0 THEN Nothing
ELSE PorscheVerkaufen;
15: IF Siemens[2] = 0 THEN Nothing
ELSE SiemensVerkaufen;
16: IF Sony[2] = 0 THEN Nothing
ELSE SonyVerkaufen;
17: IF Springer[2] = 0 THEN Nothing
ELSE SpringerVerkaufen;
18: IF Thyssen[2] = 0 THEN Nothing
ELSE ThyssenVerkaufen;
19: IF Varta[2] = 0 THEN Nothing
ELSE VartaVerkaufen;
20: IF VEW[2] = 0 THEN Nothing
ELSE VEWVerkaufen;
END;
UNTIL Wahl = 0;
END;
PROCEDURE Kurs;
VAR Return : STRING;
BEGIN
CLRSCR(f);
COORD(1,1); WRITELN(f,Spielername,' --- Guthaben: ',Guthaben:8,' --- Tag: ',Tag);
COORD(1,3); WRITELN(f,'Nr. |Firma | Kurs | alter Kurs');
COORD(1,4); WRITELN(f,'----+----------------+--------+------------');
COORD(1,5); WRITELN(f,' 1 | AEG | ',AEG[1]:5,' | ',AltAEG:5);
COORD(1,6); WRITELN(f,' 2 | BASF | ',BASF[1]:5,' | ',AltBASF:5);
COORD(1,7); WRITELN(f,' 3 | Bertelsmann | ',Bertelsmann[1]:5,' | ',AltBertelsmann:5);
COORD(1,8); WRITELN(f,' 4 | BMW | ',BMW[1]:5,' | ',AltBMW:5);
COORD(1,9); WRITELN(f,' 5 | BP | ',BP[1]:5,' | ',AltBP:5);
COORD(1,10);WRITELN(f,' 6 | Continental | ',Continental[1]:5,' | ',AltContinental:5);
COORD(1,11);WRITELN(f,' 7 | DresdnerBank | ',DresdnerBank[1]:5,' | ',AltDresdnerBank:5);
COORD(1,12);WRITELN(f,' 8 | Hoechst | ',Hoechst[1]:5,' | ',AltHoechst:5);
COORD(1,13);WRITELN(f,' 9 | IBM | ',IBM[1]:5,' | ',AltIBM:5);
COORD(1,14);WRITELN(f,'10 | Karstadt | ',Karstadt[1]:5,' | ',AltKarstadt:5);
COORD(1,15);WRITELN(f,'11 | Krupp AG | ',KruppAG[1]:5,' | ',AltKruppAG:5);
COORD(1,16);WRITELN(f,'12 | Mercedes | ',Mercedes[1]:5,' | ',AltMercedes:5);
COORD(1,17);WRITELN(f,'13 | Phoenix | ',Phoenix[1]:5,' | ',AltPhoenix:5);
COORD(1,18);WRITELN(f,'14 | Porsche | ',Porsche[1]:5,' | ',AltPorsche:5);
COORD(1,19);WRITELN(f,'15 | Siemens | ',Siemens[1]:5,' | ',AltSiemens:5);
COORD(1,20);WRITELN(f,'16 | Sony | ',Sony[1]:5,' | ',AltSony:5);
COORD(1,21);WRITELN(f,'17 | Springer | ',Springer[1]:5,' | ',AltSpringer:5);
COORD(1,22);WRITELN(f,'18 | Thyssen | ',Thyssen[1]:5,' | ',AltThyssen:5);
COORD(1,23);WRITELN(f,'19 | Varta | ',Varta[1]:5,' | ',AltVarta:5);
COORD(1,24);WRITELN(f,'20 | VEW | ',VEW[1]:5,' | ',AltVEW:5);
COORD(1,26); READLN(f,Return);
END;
PROCEDURE Spielmenu;
BEGIN
REPEAT;
CLRSCR(f);
COORD(1,1); WRITELN(f,Spielername,' --- Guthaben: ',Guthaben:8,' --- Tag: ',Tag);
COORD(15,3); WRITELN(f,' »» Menü ««');
COORD(15,5); WRITELN(f,'[1] ... Aktien kaufen');
COORD(15,6); WRITELN(f,'[2] ... Aktien verkaufen');
COORD(15,7); WRITELN(f,'[3] ... Aktienkurs ansehen');
COORD(15,8); WRITELN(f,'[4] ... Zug beendet!');
COORD(15,9); WRITELN(f,'[5] ... Spiel beenden');
COORD(13,11);WRITE(f,'> '); READLN(f,Wahl);
UNTIL (Wahl > 0) AND (Wahl < 6);
END;
PROCEDURE Kursberechnung;
VAR ZuffiZiffer,Zuffiziffer2 : INTEGER;
BEGIN
Tag := Tag + 1;
AltAEG := AEG[1];
AltBASF := BASF[1];
AltBertelsmann := Bertelsmann[1];
AltBMW := BMW[1];
AltBP := BP[1];
AltContinental := Continental[1];
AltDresdnerBank := DresdnerBank[1];
AltHoechst := Hoechst[1];
AltIBM := IBM[1];
AltKarstadt := Karstadt[1];
AltKruppAG := KruppAG[1];
AltMercedes := Mercedes[1];
AltPhoenix := Phoenix[1];
AltPorsche := Porsche[1];
AltSiemens := Siemens[1];
AltSony := Sony[1];
AltSpringer := Springer[1];
AltThyssen := Thyssen[1];
AltVarta := Varta[1];
AltVEW := VEW[1];
ZuffiZiffer := RANDOM(30);
IF Zuffiziffer <= 0 THEN AEG[1] := AEG[1];
IF ODD(Zuffiziffer) = TRUE THEN BEGIN {* Zahl ungerade -> Kurs fällt *}
ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
AEG[1] := (AEG[1] - 25) + Zuffiziffer2;
END;
IF ODD(Zuffiziffer) = FALSE THEN BEGIN {* Zahl gerade -> Kurs steigt *}
Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
AEG[1] := AEG[1] + 2 + Zuffiziffer;
END;
ZuffiZiffer := RANDOM(30);
IF Zuffiziffer <= 0 THEN BASF[1] := BASF[1];
IF ODD(Zuffiziffer) = TRUE THEN BEGIN {* Zahl ungerade -> Kurs fällt *}
ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
BASF[1] := (BASF[1] - 25) + Zuffiziffer2;
END;
IF ODD(Zuffiziffer) = FALSE THEN BEGIN {* Zahl gerade -> Kurs steigt *}
Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
BASF[1] := BASF[1] + 2 + Zuffiziffer;
END;
ZuffiZiffer := RANDOM(30);
IF Zuffiziffer <= 0 THEN Bertelsmann[1] := Bertelsmann[1];
IF ODD(Zuffiziffer) = TRUE THEN BEGIN {* Zahl ungerade -> Kurs fällt *}
ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
Bertelsmann[1] := (Bertelsmann[1] - 25) + Zuffiziffer2;
END;
IF ODD(Zuffiziffer) = FALSE THEN BEGIN {* Zahl gerade -> Kurs steigt *}
Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
Bertelsmann[1] := Bertelsmann[1] + 2 + Zuffiziffer;
END;
ZuffiZiffer := RANDOM(30);
IF Zuffiziffer <= 0 THEN BMW[1] := BMW[1];
IF ODD(Zuffiziffer) = TRUE THEN BEGIN {* Zahl ungerade -> Kurs fällt *}
ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
BMW[1] := (BMW[1] - 25) + Zuffiziffer2;
END;
IF ODD(Zuffiziffer) = FALSE THEN BEGIN {* Zahl gerade -> Kurs steigt *}
Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
BMW[1] := BMW[1] + 2 + Zuffiziffer;
END;
ZuffiZiffer := RANDOM(30);
IF Zuffiziffer <= 0 THEN BP[1] := BP[1];
IF ODD(Zuffiziffer) = TRUE THEN BEGIN {* Zahl ungerade -> Kurs fällt *}
ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
BP[1] := (BP[1] - 25) + Zuffiziffer2;
END;
IF ODD(Zuffiziffer) = FALSE THEN BEGIN {* Zahl gerade -> Kurs steigt *}
Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
BP[1] := BP[1] + 2 + Zuffiziffer;
END;
ZuffiZiffer := RANDOM(30);
IF Zuffiziffer <= 0 THEN Continental[1] := Continental[1];
IF ODD(Zuffiziffer) = TRUE THEN BEGIN {* Zahl ungerade -> Kurs fällt *}
ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
Continental[1] := (Continental[1] - 25) + Zuffiziffer2;
END;
IF ODD(Zuffiziffer) = FALSE THEN BEGIN {* Zahl gerade -> Kurs steigt *}
Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
Continental[1] := Continental[1] + 2 + Zuffiziffer;
END;
ZuffiZiffer := RANDOM(30);
IF Zuffiziffer <= 0 THEN DresdnerBank[1] := DresdnerBank[1];
IF ODD(Zuffiziffer) = TRUE THEN BEGIN {* Zahl ungerade -> Kurs fällt *}
ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
DresdnerBank[1] := (DresdnerBank[1] - 25) + Zuffiziffer2;
END;
IF ODD(Zuffiziffer) = FALSE THEN BEGIN {* Zahl gerade -> Kurs steigt *}
Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
DresdnerBank[1] := DresdnerBank[1] + 2 + Zuffiziffer;
END;
ZuffiZiffer := RANDOM(30);
IF Zuffiziffer <= 0 THEN Hoechst[1] := Hoechst[1];
IF ODD(Zuffiziffer) = TRUE THEN BEGIN {* Zahl ungerade -> Kurs fällt *}
ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
Hoechst[1] := (Hoechst[1] - 25) + Zuffiziffer2;
END;
IF ODD(Zuffiziffer) = FALSE THEN BEGIN {* Zahl gerade -> Kurs steigt *}
Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
Hoechst[1] := Hoechst[1] + 2 + Zuffiziffer;
END;
ZuffiZiffer := RANDOM(30);
IF Zuffiziffer <= 0 THEN IBM[1] := IBM[1];
IF ODD(Zuffiziffer) = TRUE THEN BEGIN {* Zahl ungerade -> Kurs fällt *}
ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
IBM[1] := (IBM[1] - 25) + Zuffiziffer2;
END;
IF ODD(Zuffiziffer) = FALSE THEN BEGIN {* Zahl gerade -> Kurs steigt *}
Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
IBM[1] := IBM[1] + 2 + Zuffiziffer;
END;
ZuffiZiffer := RANDOM(30);
IF Zuffiziffer <= 0 THEN Karstadt[1] := Karstadt[1];
IF ODD(Zuffiziffer) = TRUE THEN BEGIN {* Zahl ungerade -> Kurs fällt *}
ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
Karstadt[1] := (Karstadt[1] - 25) + Zuffiziffer2;
END;
IF ODD(Zuffiziffer) = FALSE THEN BEGIN {* Zahl gerade -> Kurs steigt *}
Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
Karstadt[1] := Karstadt[1] + 2 + Zuffiziffer;
END;
ZuffiZiffer := RANDOM(30);
IF Zuffiziffer <= 0 THEN KruppAG[1] := KruppAG[1];
IF ODD(Zuffiziffer) = TRUE THEN BEGIN {* Zahl ungerade -> Kurs fällt *}
ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
KruppAG[1] := (KruppAG[1] - 25) + Zuffiziffer2;
END;
IF ODD(Zuffiziffer) = FALSE THEN BEGIN {* Zahl gerade -> Kurs steigt *}
Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
KruppAG[1] := KruppAG[1] + 2 + Zuffiziffer;
END;
ZuffiZiffer := RANDOM(30);
IF Zuffiziffer <= 0 THEN Mercedes[1] := Mercedes[1];
IF ODD(Zuffiziffer) = TRUE THEN BEGIN {* Zahl ungerade -> Kurs fällt *}
ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
Mercedes[1] := (BASF[1] - 25) + Zuffiziffer2;
END;
IF ODD(Zuffiziffer) = FALSE THEN BEGIN {* Zahl gerade -> Kurs steigt *}
Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
Mercedes[1] := Mercedes[1] + 2 + Zuffiziffer;
END;
ZuffiZiffer := RANDOM(30);
IF Zuffiziffer <= 0 THEN Phoenix[1] := Phoenix[1];
IF ODD(Zuffiziffer) = TRUE THEN BEGIN {* Zahl ungerade -> Kurs fällt *}
ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
Phoenix[1] := (Phoenix[1] - 25) + Zuffiziffer2;
END;
IF ODD(Zuffiziffer) = FALSE THEN BEGIN {* Zahl gerade -> Kurs steigt *}
Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
Phoenix[1] := Phoenix[1] + 2 + Zuffiziffer;
END;
ZuffiZiffer := RANDOM(30);
IF Zuffiziffer <= 0 THEN Porsche[1] := Porsche[1];
IF ODD(Zuffiziffer) = TRUE THEN BEGIN {* Zahl ungerade -> Kurs fällt *}
ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
Porsche[1] := (Porsche[1] - 25) + Zuffiziffer2;
END;
IF ODD(Zuffiziffer) = FALSE THEN BEGIN {* Zahl gerade -> Kurs steigt *}
Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
Porsche[1] := Porsche[1] + 2 + Zuffiziffer;
END;
ZuffiZiffer := RANDOM(30);
IF Zuffiziffer <= 0 THEN Siemens[1] := Siemens[1];
IF ODD(Zuffiziffer) = TRUE THEN BEGIN {* Zahl ungerade -> Kurs fällt *}
ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
Siemens[1] := (Siemens[1] - 25) + Zuffiziffer2;
END;
IF ODD(Zuffiziffer) = FALSE THEN BEGIN {* Zahl gerade -> Kurs steigt *}
Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
Siemens[1] := Siemens[1] + 2 + Zuffiziffer;
END;
ZuffiZiffer := RANDOM(30);
IF Zuffiziffer <= 0 THEN Sony[1] := Sony[1];
IF ODD(Zuffiziffer) = TRUE THEN BEGIN {* Zahl ungerade -> Kurs fällt *}
ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
Sony[1] := (Sony[1] - 25) + Zuffiziffer2;
END;
IF ODD(Zuffiziffer) = FALSE THEN BEGIN {* Zahl gerade -> Kurs steigt *}
Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
SOny[1] := Sony[1] + 2 + Zuffiziffer;
END;
ZuffiZiffer := RANDOM(30);
IF Zuffiziffer <= 0 THEN Springer[1] := Springer[1];
IF ODD(Zuffiziffer) = TRUE THEN BEGIN {* Zahl ungerade -> Kurs fällt *}
ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
Springer[1] := (Springer[1] - 25) + Zuffiziffer2;
END;
IF ODD(Zuffiziffer) = FALSE THEN BEGIN {* Zahl gerade -> Kurs steigt *}
Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
Springer[1] := Springer[1] + 2 + Zuffiziffer;
END;
ZuffiZiffer := RANDOM(30);
IF Zuffiziffer <= 0 THEN Thyssen[1] := Thyssen[1];
IF ODD(Zuffiziffer) = TRUE THEN BEGIN {* Zahl ungerade -> Kurs fällt *}
ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
Thyssen[1] := (Thyssen[1] - 25) + Zuffiziffer2;
END;
IF ODD(Zuffiziffer) = FALSE THEN BEGIN {* Zahl gerade -> Kurs steigt *}
Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
Thyssen[1] := Thyssen[1] + 2 + Zuffiziffer;
END;
ZuffiZiffer := RANDOM(30);
IF Zuffiziffer <= 0 THEN Varta[1] := Varta[1];
IF ODD(Zuffiziffer) = TRUE THEN BEGIN {* Zahl ungerade -> Kurs fällt *}
ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
Varta[1] := (Varta[1] - 25) + Zuffiziffer2;
END;
IF ODD(Zuffiziffer) = FALSE THEN BEGIN {* Zahl gerade -> Kurs steigt *}
Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
Varta[1] := Varta[1] + 2 + Zuffiziffer;
END;
ZuffiZiffer := RANDOM(30);
IF Zuffiziffer <= 0 THEN VEW[1] := VEW[1];
IF ODD(Zuffiziffer) = TRUE THEN BEGIN {* Zahl ungerade -> Kurs fällt *}
ZuffiZiffer2 := RANDOM(5+Zuffiziffer);
VEW[1] := (VEW[1] - 25) + Zuffiziffer2;
END;
IF ODD(Zuffiziffer) = FALSE THEN BEGIN {* Zahl gerade -> Kurs steigt *}
Zuffiziffer2 := RANDOM(5+Zuffiziffer*2);
VEW[1] := VEW[1] + 2 + Zuffiziffer;
END;
IF AEG[1] < 0 THEN AEG[1] := 0;
IF Bertelsmann[1] < 0 THEN Bertelsmann[1] := 0;
IF BMW[1] < 0 THEN BMW[1] := 0;
IF BP[1] < 0 THEN BP[1] := 0;
IF Continental[1] < 0 THEN Continental[1] := 0;
IF DresdnerBank[1] < 0 THEN DresdnerBank[1] := 0;
IF Hoechst[1] < 0 THEN Hoechst[1] := 0;
IF IBM[1] < 0 THEN IBM[1] := 0;
IF Karstadt[1] < 0 THEN Karstadt[1] := 0;
IF KruppAG[1] < 0 THEN KruppAG[1] := 0;
IF Mercedes[1] < 0 THEN Mercedes[1] := 0;
IF Phoenix[1] < 0 THEN Phoenix[1] := 0;
IF Porsche[1] < 0 THEN Porsche[1] := 0;
IF Siemens[1] < 0 THEN Siemens[1] := 0;
IF Sony[1] < 0 THEN Siemens[1] := 0;
IF Springer[1] < 0 THEN Springer[1] := 0;
IF Thyssen[1] < 0 THEN Thyssen[1] := 0;
IF Varta[1] < 0 THEN Varta[1] := 0;
IF VEW[1] < 0 THEN VEW[1] := 0;
Kurs;
END;
PROCEDURE Auswertung;
VAR Return : STRING;
BEGIN
CLRSCR(f);
IF AEG[2] > 0 THEN Guthaben := Guthaben + AEG[1] * AEG[2];
IF BASF[2] > 0 THEN Guthaben := Guthaben + BASF[1] * BASF[2];
IF Bertelsmann[2] > 0 THEN Guthaben := Guthaben + Bertelsmann[2] * Bertelsmann[1];
IF BMW[2] > 0 THEN Guthaben := Guthaben + BMW[2] * BMW[1];
IF BP[2] > 0 THEN Guthaben := Guthaben + BP[2] * BP[1];
IF Continental[2] > 0 THEN Guthaben := Guthaben + Continental[1] * Continental[2];
IF DresdnerBank[2] > 0 THEN Guthaben := Guthaben + DresdnerBank[1] * DresdnerBank[2];
IF Hoechst[2] > 0 THEN Guthaben := Guthaben + Hoechst[2] * Hoechst[1];
IF IBM[2] > 0 THEN Guthaben := Guthaben + IBM[2] * IBM[1];
IF Karstadt[2] > 0 THEN Guthaben := Guthaben + Karstadt[1] * Karstadt[2];
IF KruppAG[2] > 0 THEN Guthaben := Guthaben + KruppAG[2] * KruppAG[1];
IF Mercedes[2] > 0 THEN Guthaben := Guthaben + Mercedes[2] * Mercedes[1];
IF Phoenix[2] > 0 THEN Guthaben := Guthaben + Phoenix[2] * Phoenix[1];
IF Porsche[2] > 0 THEN Guthaben := Guthaben + Porsche[2] * Porsche[1];
IF Siemens[2] > 0 THEN Guthaben := Guthaben + Siemens[2] * Siemens[1];
IF Sony[2] > 0 THEN Guthaben := Guthaben + Sony[2] * Sony[1];
IF Springer[2] > 0 THEN Guthaben := Guthaben + Springer[2] * Springer[1];
IF Thyssen[2] > 0 THEN Guthaben := Guthaben + Thyssen[2] * Thyssen[1];
IF Varta[2] > 0 THEN Guthaben := Guthaben + Varta[2] * Varta[1];
IF VEW[2] > 0 THEN Guthaben := Guthaben + VEW[2] * VEW[1];
COORD(10,15);WRITELN(f,Spielername,', Sie haben ',Guthaben:8,' DM erwirtschaftet!');
COORD(10,16);
IF Guthaben < 10001 THEN WRITELN(f,'Aber leider ist das nicht genug... Sie haben verloren...');
IF Guthaben > 10000 THEN WRITELN(f,'Sie haben Geschick bewiesen, denn Sie haben die 10000DM vermehrt...');
COORD(18,17);WRITE(f,'[RETURN] ');READLN(f,Return);
Guthaben := 10000;
Tag := 1;
Voreinstellungen;
END;
PROCEDURE AskName;
BEGIN
CLRSCR(f);WRITELN(f);WRITELN(f);WRITE(f,'Bitte geben Sie Ihren Namen ein: '); READLN(f,SpielerName);
CLRSCR(f);
END;
PROCEDURE Spiel;
BEGIN
CLRSCR(f);
AskName;
Voreinstellungen;
REPEAT;
REPEAT;
Spielmenu;
IF Wahl = 1 THEN Kaufen;
IF Wahl = 2 THEN Verkaufen;
IF Wahl = 3 THEN Kurs;
IF Wahl = 4 THEN Nothing;
IF Wahl = 5 THEN EXIT;
UNTIL Wahl = 4;
Kursberechnung;
UNTIL Tag = 46;
Auswertung;
END;
BEGIN
Guthaben := 10000;
Tag := 1;
ASSIGN(f,'CON:0/0/640/256/Börse');
RESET(f);
IF EOF(f) THEN ERROR('Could not open game window...');
REPEAT;
REPEAT;
CLRSCR(f);
COORD(15,2); WRITELN(f,'»» P L A N S P I E L B Ö R S E ««');
COORD(15,4); WRITELN(f,'[1] ... Spiel beginnen');
COORD(15,5); WRITELN(f,'[2] ... Programmende');
COORD(13,7);WRITE(f,'> '); READLN(f,Wahl);
UNTIL (Wahl > 0) AND (Wahl < 3);
IF Wahl = 1 THEN Spiel;
IF Wahl = 2 THEN Nothing;
UNTIL Wahl = 2;
Close(f);
END.